halcon 您所在的位置:网站首页 halcon 拟合椭圆 halcon

halcon

2023-04-06 04:04| 来源: 网络整理| 查看: 265

ReadImage(&ho_Image, "D:/bb/tu/8.jpg"); Rgb1ToGray(ho_Image, &ho_GrayImage); EdgesSubPix(ho_GrayImage, &ho_Edges, "canny", 1, 5, 10); //亚像素边缘 SelectShapeXld(ho_Edges, &ho_SelectedXLD, "contlength", "and", 367, 369); SegmentContoursXld(ho_SelectedXLD, &ho_ContoursSplit, "lines_ellipses", 5, 4, 2); SelectShapeXld(ho_ContoursSplit, &ho_SelectedXLD1, "contlength", "and", 72, 77);

FitEllipseContourXld(ho_SelectedXLD1, "fitzgibbon", -1, 0, 0, 200, 3, 2, &hv_Row, &hv_Column, &hv_Phi, &hv_Radius1, &hv_Radius2, &hv_StartPhi, &hv_EndPhi, &hv_PointOrder); //对XLD轮廓做近似椭圆计算--拟合椭圆--获得椭圆数据 //参数1:输入xld轮廓 //参数2:椭圆拟合算法 // 'fhuber', 'fitzgibbon', 'focpoints', 'fphuber', 'fptukey', 'ftukey', 'geohuber', 'geometric', 'geotukey', 'voss' //参数4:轮廓端点之间的最大距离被视为“闭合” //参数9:Row椭圆中心的行坐标 //参数10:Column椭圆中心的列坐标 //参数11:Phi主轴方向 //参数12:Radius1大半轴的长度 //参数13:Radius2较小半轴的长度 //参数14:StartPhi起点的角度 //参数15:EndPhi终点的角度 //参数16:PointOrder沿边界的点顺序( 'negative'负序, 'positive'正序) //注意:拟合时参数1只能包含一条xld

GenEllipseContourXld(&ho_ContEllipse, hv_Row, hv_Column, hv_Phi, hv_Radius1, hv_Radius2, hv_StartPhi, hv_EndPhi, "positive", 1.5); //创建椭圆弧的XLD轮廓 //参数1:生成的轮廓 //参数2:Row椭圆中心的行坐标 //参数3:Column椭圆中心的列坐标 //参数4:Phi主轴方向 //参数5:Radius1大半轴的长度 //参数6:Radius2较小半轴的长度 //参数7:StartPhi起点的角度 //参数8:EndPhi终点的角度 //参数9:PointOrder沿边界的点顺序( 'negative'负序, 'positive'正序) //参数10:分辨率:相邻轮廓点之间的最大距离

GetImageSize(ho_GrayImage, &hv_Width, &hv_Height); SetWindowAttr("background_color","black"); OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle); HDevWindowStack::Push(hv_WindowHandle); if (HDevWindowStack::IsOpen()) DispObj(ho_SelectedXLD1, HDevWindowStack::GetActive());

SetWindowAttr("background_color","black"); OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle1); HDevWindowStack::Push(hv_WindowHandle1); if (HDevWindowStack::IsOpen()) DispObj(ho_ContEllipse, HDevWindowStack::GetActive());



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有